package com.example.mybatisplus.config;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 自定义业务异常
 *
 * @author 宋义州
 * @since 2022-07-26  00:05
 */
@Data
@SuppressWarnings("unused")
@EqualsAndHashCode(callSuper = true)
public class ServiceException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    private Integer code;

    private String message;

    /**
     * 空构造方法，避免反序列化问题
     */
    public ServiceException() {
    }

    /**
     * @param code    状态码
     * @param message 错误信息
     */
    public ServiceException(Integer code, String message) {
        super(message);
        this.code = code;
        this.message = message;
    }

    /**
     * 创建一个异常
     *
     * @param code    状态码
     * @param message 错误信息
     * @return ServiceException
     */
    public static ServiceException create(Integer code, String message) {
        return new ServiceException(code, message);
    }

}
